import Vue from 'vue';
import axios from './router/axios';
import VueAxios from 'vue-axios';
import App from './App';
import router from './router/router';
import './permission'; // 权限
import './error'; // 日志
import './cache';//页面缓存
import store from './store';
import {loadStyle} from './util/util'
import * as urls from '@/config/env';
import Element from 'element-ui';
import {
  iconfontUrl,
  iconfontVersion
} from '@/config/env';
import i18n from './lang' // Internationalization
import './styles/common.scss';
import './styles/less/custom.scss';
import basicBlock from './components/basic-block/main'
import basicContainer from './components/basic-container/main'
import thirdRegister from './components/third-register/main'
import avueUeditor from 'avue-plugin-ueditor';
import website from '@/config/website';

Vue.use(router);
Vue.use(VueAxios, axios);
Vue.use(Element, {
  i18n: (key, value) => i18n.t(key, value)
});
Vue.use(window.AVUE, {
  size: 'mini',
  tableSize: 'mini',
  i18n: (key, value) => i18n.t(key, value)
});
//注册全局容器
Vue.component('basicContainer', basicContainer);
Vue.component('basicBlock', basicBlock);
Vue.component('thirdRegister', thirdRegister);
Vue.component('avueUeditor', avueUeditor);
// 加载相关url地址
Object.keys(urls).forEach(key => {
  Vue.prototype[key] = urls[key];
});
// 加载website
Vue.prototype.website = website;
// 动态加载阿里云字体库
iconfontVersion.forEach(ele => {
  loadStyle(iconfontUrl.replace('$key', ele));
});
const trigger = (el, type) => {
  const e = document.createEvent('HTMLEvents')
  e.initEvent(type, true, true)
  el.dispatchEvent(e)
}
// 针对 el-input做的限制，只能输入正整数
Vue.directive('Int', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^1-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d]/g, '')
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^1-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d]/g, '')
      }
      trigger(input, 'input')
    }
  }

})
Vue.directive('Perint', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^1-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d]/g, '')
      }
      if (input.value>100){
        input.value = 100
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^1-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d]/g, '')
      }
      if (input.value>100){
        input.value = 100
      }
      trigger(input, 'input')
    }
  }

})
Vue.directive('Zero', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d]/g, '')
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d]/g, '')
      }
      trigger(input, 'input')
    }
  }

})
Vue.directive('Doct', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d\d\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d\d\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
  }
})
Vue.directive('Docttwo', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
  }
})
Vue.directive('Perdocttwo', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
        if (input.value>100){
          input.value = 100
        }
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
        if (input.value>100){
          input.value = 100
        }
      }
      trigger(input, 'input')
    }
  }
})

Vue.directive('loadmore', {
  // bind只调用一次，指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置
  bind:function (el, binding) {
    // 获取element-ui定义好的scroll盒子  Select 选择器的下拉盒子
    const SELECTWRAP_DOM = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap')
    SELECTWRAP_DOM.addEventListener('scroll', function () {
      // 判断滚动到底部
      const CONDITION = this.scrollHeight - this.scrollTop <= this.clientHeight
      if (CONDITION) {
        // binding.value 是指令的绑定值，该值可能是字符串，数字、函数
        // binding.value() 表示执行 v-loadmore 绑定的函数
        binding.value()
      }
    })
  }
})


Vue.directive('Doctten', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d\d\d\d\d).*$/, '$1$2.$3');//只能输入十个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d\d\d\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
  }
})
Vue.directive('Docteight', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d\d\d).*$/, '$1$2.$3');//只能输入八个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d\d\d).*$/, '$1$2.$3');//只能输入八个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
  }
})
Vue.directive('Doctsix', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
  }
})
Vue.directive('Doctfive', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d\d\d\d).*$/, '$1$2.$3');//只能输入五个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d\d\d\d).*$/, '$1$2.$3');//只能输入五个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
  }
})
Vue.directive('Doctfour', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
      }
      trigger(input, 'input')
    }
  }
})
Vue.directive('Persent', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
        if (input.value>100){
          input.value = 100
        }
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
        if (input.value > 100) {
          input.value = 100
        }
      }
      trigger(input, 'input')
    }
  }

})
Vue.directive('Doctdefault', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      input.value = input.value.replace(/[^\d\.-]/g, '');//只能输入数字、小数点、负号
      input.value = input.value.replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.');//只能有一个小数点
      input.value = input.value.replace(/\-{2,}/g, '-').replace('-', '$#$').replace(/\-/g, '').replace('$#$', '-').replace(/(?<=\d)-$|(?<=\.)-$/g, '');//只能有一个负号，且不出现在输入值中间
      var min = -100;//最小值，超过则赋值为空
      var max = 100;
      var reg = /^-{1}\d*.?\d*|^-{0}\d+.?\d*/;
      if (!reg.test(input.value)) {
        if (input.value  != '' || input.value == '-.') {
          input.value =''
        }
        return;
      }
      else if ((/(?<=-)\./).test(input.value)) {
        input.value = ''
      }
      if (input.value != '-' && input.value != '.' && input.value > max ) {
        input.value = 100
        return;
      }
      if (input.value != '-' && input.value != '.' &&  input.value < min) {
        input.value = -100
        return;
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      input.value = input.value.replace(/[^\d\.-]/g, '');//只能输入数字、小数点、负号
      input.value = input.value.replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.');//只能有一个小数点
      input.value = input.value.replace(/\-{2,}/g, '-').replace('-', '$#$').replace(/\-/g, '').replace('$#$', '-').replace(/(?<=\d)-$|(?<=\.)-$/g, '');//只能有一个负号，且不出现在输入值中间
      var min = -100;//最小值，超过则赋值为空
      var max = 100;
      var reg = /^-{1}\d*.?\d*|^-{0}\d+.?\d*/;
      if (!reg.test(input.value)) {
        if (input.value != '' || input.value == '-.') {
          input.value = ''
        }
        return;
      }
      else if ((/(?<=-)\./).test(input.value)) {
        input.value = ''
      }
      if (input.value != '-' && input.value != '.' && input.value > max) {
        input.value = 100
        return;
      }
      if (input.value != '-' && input.value != '.' && input.value < min) {
        input.value = -100
        return;
      }
      trigger(input, 'input')
    }
  }

})
Vue.directive('Pointone', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d).*$/, '$1$2.$3');//只能输入1个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
        if (input.value>100){
          input.value = 100
        }
        if (input.value=='100.'){
          input.value = 100
        }
      }
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if (input.value.length === 1) {
        input.value = input.value.replace(/[^0-9]/g, '')
      } else {
        input.value = input.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
        input.value = input.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
        input.value = input.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        input.value = input.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能输入两个小数
        if (input.value.indexOf(".") < 0 && input.value != "") {//以上已经过滤，此处控制的是如果没有小数点，首位不能为类似于 01、02的金额
          input.value = parseFloat(input.value);
        }
        if (input.value > 100) {
          input.value = 100
        }
      }
      trigger(input, 'input')
    }
  }

})
Vue.directive('Zh', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
        input.value = input.value.replace(/[^\u4e00-\u9fa5]/g, "");  //清除汉字以外的字符
        trigger(input, 'input')
    }
    input.onblur = function (e) {
      input.value = input.value.replace(/[^\u4e00-\u9fa5]/g, "");  //清除汉字以外的字符
      trigger(input, 'input')
    }
  }

})
Vue.directive('Ltc', {
  bind: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.onkeyup = function (e) {
      input.value = input.value.replace(/[^\d]/g,'').replace(/(\d{1})(?=\d)/g,'$1,');
      trigger(input, 'input')
    }
    input.onblur = function (e) {
      if(input.value.length == 9){
        input.value = input.value.replace(/[^\d]/g,'').replace(/(\d{1})(?=\d)/g,'$1,');
      }else{
        if(input.value.length == 1){
          input.value = input.value.replace(/[^\d]/g,'').replace(/(\d{1})(?=\d)/g,'$1,')+',0,0,0,0';
        }else if(input.value.length == 3){
          input.value = input.value.replace(/[^\d]/g,'').replace(/(\d{1})(?=\d)/g,'$1,')+',0,0,0';
        }else if(input.value.length == 5){
          input.value = input.value.replace(/[^\d]/g,'').replace(/(\d{1})(?=\d)/g,'$1,')+',0,0';
        }else if(input.value.length == 7){
          input.value = input.value.replace(/[^\d]/g,'').replace(/(\d{1})(?=\d)/g,'$1,')+',0';
        }else if(input.value.length == 0){
          input.value = '0,0,0,0,0';
        }
      }
      trigger(input, 'input')
    }
  }
})
// 自动focus
Vue.directive('focus', {
  inserted: function (el) {
    const input = el.getElementsByTagName('input')[0]
    input.focus()
  }
})
Vue.config.productionTip = false;

new Vue({
  router,
  store,
  i18n,
  render: h => h(App)
}).$mount('#app')

// 在树形数据中查找对象
/**
 * 
 * @param {String} attr key
 * @param {String} val value
 * @param {Array} list 树形数据数组
 * @returns obj
 */
const findObjFromTree = (attr, val, list) => {
  let res = list.find(item => item[attr] == val)
  if (res) {
    return res
  } else {
    for (let i=0; i<list.length; i++) {
      if (list[i].children instanceof Array && list[i].children.length > 0) {
        res = findObjFromTree(attr, val, list[i].children)
        if(res){
          return res
        }
      }
    }
    return null
  }
}

window.$findObjFromTree = findObjFromTree